home *** CD-ROM | disk | FTP | other *** search
Makefile | 1996-08-13 | 4.8 KB | 201 lines |
- #### Start of system configuration section. ####
-
- srcdir = @srcdir@
-
- ifeq ($(srcdir),.)
- srcdir = ../..
- endif
-
- VPATH := $(srcdir)
-
- # Common prefix for machine-independent installed files.
- prefix = @prefix@
-
- # Common prefix for machine-dependent installed files.
- exec_prefix = @exec_prefix@
-
- bindir = $(exec_prefix)/bin
- libdir = $(exec_prefix)/Sys/libs
-
- INSTALL = @INSTALL@
- INSTALL_DATA = @INSTALL_DATA@
-
- CC = @CC@
-
- CFLAGS = @CFLAGS@
- LDFLAGS = @LDFLAGS@
-
- RANLIB = @RANLIB@
- AR = ar
-
- #### End system configuration section ####
-
- # I *love* GNU make!
- define catenate
- /bin/echo -n creating $@...
- /bin/echo "$(^:%=#include \"%\"\n)" >$@
- /bin/echo done
- endef
-
- FLAVOR_CFLAGS = -m$(CPU) -m$(FPU)
- STD_CFLAGS = $(CFLAGS) $(OTHER_CFLAGS) -g $(INCS)
- ALL_CFLAGS = $(FLAVOR_CFLAGS) $(STD_CFLAGS)
-
- INCS = -I$(srcdir) -I$(srcdir)/../library -I$(srcdir)/../include -I.
- LIB = library.a
-
- # Strip the executable (-s), don't look for standard libraries (-nostdlib)
- # don't link in crt0.o (-nostartfiles) and tell the linker explicitly to
- # load the module from the library that defines the symbol "___load_seg"
- # (-Xlinker -u -Xlinker ___load_seg).
-
- LINKFLAGS = -nostdlib -nostartfiles -Xlinker -u -Xlinker ___load_seg
-
- .c.o:
- $(CC) $(ALL_CFLAGS) -c $< -o $@
-
- all: ixemul.library ixemul.trace ixemul.debug
-
- SRC_A4 = ix_startup.c _main.c ix_exec_entry.c exit.c ix_resident.c machdep.c
- SRC_MISC = parse_version.c create_header.c tracecntl.c
- SRC_OTHERS = hwck.c trap.c ix_timer.c version.c debugstub.c
- OBJ_OTHERS = $(SRC_OTHERS:.c=.o)
-
- SRC = $(filter-out $(SRC_A4) $(SRC_OTHERS) $(SRC_MISC),$(notdir $(wildcard $(srcdir)/*.c)))
-
- SRC___ = $(filter _%,$(SRC))
- SRC_AH = $(filter a% b% c% d% e% f% g% h%,$(SRC))
- SRC_II = $(filter i%,$(SRC))
- SRC_JO = $(filter j% k% l% m% n% o%,$(SRC))
- SRC_PR = $(filter p% q% r%,$(SRC))
- SRC_SS = $(filter s%,$(SRC))
- SRC_TZ = $(filter t% u% v% w% x% y% z%,$(SRC))
-
- # These are object files which explicitly get linked into the ixemul.library
- # file, in the order specified
-
- OBJ_N = start.o tracecntl.o
-
- OBJ_T = start.ot tracecntl.ot
-
- IXLIBS = $(LIB) \
- ../../../string/$(CPU)/$(FPU)/libstring.a \
- ../../../general/$(CPU)/$(FPU)/libgeneral.a \
- ../../../stdlib/$(CPU)/$(FPU)/libstdlib.a \
- ../../../stdio/$(CPU)/$(FPU)/libstdio.a
-
- LIBS = -lgcc
-
-
- $(LIB) : a4.o __.o ah.o ii.o jo.o pr.o ss.o tz.o $(OBJ_OTHERS)
- rm -f $@
- $(AR) rv $@ $^
- $(RANLIB) $@
-
- ixemul.library: $(OBJ_N) $(IXLIBS)
- $(CC) -s $(LINKFLAGS) $(OBJ_N) $(IXLIBS) $(LIBS) -o $@
-
- ixemul.trace: $(OBJ_T) $(IXLIBS)
- $(CC) -s $(LINKFLAGS) $(OBJ_T) $(IXLIBS) $(LIBS) -o $@
-
- ixemul.debug: $(OBJ_N) $(IXLIBS)
- $(CC) -g $(LINKFLAGS) $(OBJ_N) $(IXLIBS) $(LIBS) -o $@
-
- clean:
- rm -rf 680?0
-
- clobber: clean
- rm -f Makefile
-
- a4.o: a4.c
- $(CC) $(ALL_CFLAGS) -ffixed-a4 -c $< -o $@
-
- a4.c: $(SRC_A4)
- @$(catenate)
-
- __.c: $(SRC___)
- @$(catenate)
-
- ah.c: $(SRC_AH)
- @$(catenate)
-
- ii.c: $(SRC_II)
- @$(catenate)
-
- jo.c: $(SRC_JO)
- @$(catenate)
-
- pr.c: $(SRC_PR)
- @$(catenate)
-
- ss.c: $(SRC_SS)
- @$(catenate)
-
- tz.c: $(SRC_TZ)
- @$(catenate)
-
- start.o: start.s version.h $(srcdir)/../include/sys/syscall.def ix_internals.h
- cp $< x.c
- $(CC) $(STD_CFLAGS) -traditional -E x.c -o x.s
- $(CC) $(STD_CFLAGS) -c -m68000 -msoft-float x.s -o $@
- rm -f x.s x.c
-
- start.ot: start.s version.h $(srcdir)/../include/sys/syscall.def ix_internals.h
- cp $< x.c
- $(CC) $(STD_CFLAGS) -DTRACE_LIBRARY -traditional -E x.c -o x.s
- $(CC) $(STD_CFLAGS) -c -m68000 -msoft-float x.s -o $@
- rm -f x.c x.s
-
- # ix_open.c (and thus ii.o) depends on the size of struct user
-
- ii.o: $(srcdir)/../include/user.h
-
- # Force -m68020 & -m68881 so the assembler won't bitch about fpu
- # instructions. This means we have to leave out FLAVOR_CFLAGS.
-
- trap.o: trap.s ix_internals.h
- cp $< x.c
- $(CC) $(STD_CFLAGS) -traditional -E x.c -o x.s
- $(CC) $(STD_CFLAGS) -c -m68020 -m68881 x.s -o $@
- rm -f x.s x.c
-
- # Never omit the frame pointer.
-
- ix_timer.o: ix_timer.c
- $(CC) $(ALL_CFLAGS) -fno-omit-frame-pointer -c $< -o $@
-
- # hwck.c checks for defines like mc68020 and __HAVE_68881__, but it also
- # must be compiled with -m68000. So we first preprocess the source with
- # standard flavor flags, and then we compile the resulting source with
- # -m68000. This ensures that when we try to use a 68020 ixemul.library on
- # a 68000 Amiga, we get a correct message and not a crash.
-
- hwck.o: hwck.c
- $(CC) $(ALL_CFLAGS) -E $< -o x.c
- $(CC) $(STD_CFLAGS) -m68000 -msoft-float -c x.c -o $@
- rm -f x.c
-
- version.o: version.c
-
- debugstub.o: debugstub.c
-
- tracecntl.o: tracecntl.c
- $(CC) $(ALL_CFLAGS) -ffixed-a4 -c $< -o $@
-
- tracecntl.ot: tracecntl.c
- $(CC) $(ALL_CFLAGS) -DTRACE_LIBRARY -ffixed-a4 -c $< -o $@
-
- ix_internals.h: create_header
- ./create_header >$@
-
- create_header: create_header.o
-
- create_header.o: create_header.c $(srcdir)/../include/user.h ixemul.h
-
- ii.o tz.o: version.h
-
- parse_version: parse_version.o
-
- version.h version.c: parse_version ../version.in
- ./parse_version $(srcdir)
-